#include <stdio.h>
#include <stdlib.h>

#include "error.h"

extern char *xname;

void err(const char *msg) {
	errf("%s", msg);
}

void ferr(const char *msg) {
	ferrf("%s", msg);
}

void errf(const char *msg, ...) {
	va_list args;
	va_start(args, msg);
	errv(msg, args);	
	va_end(args);
}

void ferrf(const char *msg, ...) {
	va_list args;
	va_start(args, msg);
	errv(msg, args);
	va_end(args);
	exit(255);
}

void errv(const char *msg, va_list args) {
	fprintf(stderr, "%s: ", xname);
	vfprintf(stderr, msg, args);
	fprintf(stderr, "\n");
}

void ferrv(const char *msg, va_list args) {
	errv(msg, args);
	exit(255);
}
